package com.itheima.stringTest;

import java.util.Scanner;

public class strDemo5_2 {
/**
 *
 * 使用 switch 循环，代替查表法
 *
 * ***/
    public static void main(String[] args) {
        //        需求1：键盘录入 0-9的字符串，转成对应的罗马数字并打印在控制台中。【罗马数字没有0 ， 故0用空字符串代替 "" ;Ⅰ代表1，Ⅱ代表2，Ⅲ代表3，Ⅳ代表4，Ⅴ代表5，Ⅵ代表6，Ⅶ代表7，Ⅷ代表8，Ⅸ代表9】
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        String numbs = sc.next();
        StringBuilder sb = new StringBuilder();
        if (!checkNum(numbs)) {
            System.out.println("你输入的内容不符合规则！！！");
            return;
        }
        for (int i = 0; i < numbs.length(); i++) {
            char cat = numbs.charAt(i);
            String lbStr = changeLM(cat);   // 数字字符传到方法中，返回对应的罗马数字。
            sb.append(lbStr);    // 拼接
        }
        String result = sb.toString();  // 转成普通字符串类型
        System.out.println("转换以后的对应的阿拉伯数字为：" + result);
    }

    //    方法：校验输入的是0-9的数字
    public static Boolean checkNum(String str) {
        for (int i = 0; i < str.length(); i++) {
            char ct = str.charAt(i);
            if (ct < '0' || ct > '9') {
                return false;
            }
        }
        return true;
    }

    //    方法：根据传入的数字字符，输出罗马数字
    public static String changeLM(char num) {
        String str = "";
        switch (num) {
            case '1' :
                str = "Ⅰ";
                break;
            case '2' :
                str = "Ⅱ";
                break;
            case '3' :
                str = "Ⅲ";
                break;
            case '4' :
                str = "Ⅳ";
                break;
            case '5' :
                str = "Ⅴ";
                break;
            case '6' :
                str = "Ⅵ";
                break;
            case '7' :
                str = "Ⅶ";
                break;
            case '8' :
                str = "Ⅷ";
                break;
            case '9' :
                str = "Ⅸ";
                break;
            default:
                str = "";
                break;
        };
        return str;
    }
}
